// Copyright (c) 2010 School of Software, Tsinghua University, Beijing (China)
// All rights reserved.
//
// This file is part of Geoxiom (http://code.google.com/p/geoxiom/); you may 
// redistribute it under the terms of the GNU Lesser General Public License.
// Licensees holding a valid commercial license may use this file in
// accordance with the commercial license agreement provided with the software.
//
// This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
// WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
//
// Author(s) : Kan-Le Shi

#ifndef GEOXIOM_UTILITY_CONFIGURATION_HPP
#define GEOXIOM_UTILITY_CONFIGURATION_HPP

#include <string>

namespace Geoxiom {
namespace Utility {

typedef class Configuration
{
public:
	static const Configuration& singleton() {
		static Configuration instance;
		return instance;
	};

public:
	// all the following paths are closed with slash or back slash
	// for example, C:\geoxiom\bin\ is vaild
	std::string	app_path; // the path of the application
	std::string workspace_path; // a specified workspace path, containing
	                            // data and other info
	std::string pattern_path; // workspace_path/pattern

protected:
	void load_default() {
		// fill the public values using the current configuration
		throw "not implemented";
	}

public:
	Configuration() { load_default(); }
	~Configuration() { }

} *ConfigurationPtr, *ConfigurationArray;

}
}

#endif